분류 javascript

Screeps-AI 프로그래밍에 관한 게임

컨텐츠 정보

  • 조회 438 (작성일 )

본문

나는 최근에 많은 자유 시간을 가졌으며, 게임을 소홀히 했던 오래된 취미로 돌아가서 기뻤습니다. 최근에 나는 Screeps라는 정말 흥미로운 게임을 발견했습니다.


https://www.ryanyosua.me/screeps/ 


Screeps 란 무엇입니까? 


Screeps는 방의 큰 그리드에서 방을 선택하고 크립이라고 불리는 AI 장치를 제어하여 자원을 수확하고 방을 업그레이드하며 구조를 구축하고 공격하고 방어하는 JavaScript 코드를 작성하는 게임입니다.


게임을 하는 경우 기본적으로 MMO RTS이며 플레이어 단위에 대한 모든 프로그래밍을 수행합니다. 

설명하기가 다소 어려우므로 잠시 시간을 내어 트레일러를 확인하십시오.



게임은 연중 무휴로 실행되며 시간은 틱 단위로 발생합니다. 내가 플레이 하는 샤드 (게임 세계의 분수)에는 평균 2.9 초마다 틱이 있습니다. 

Screeps를 플레이 할 때, 당신의 크립이 그 진드기에 대해 무엇을 해야 하는지에 대한 코드를 작성합니다. 

그런 다음 화면에서 재생되는 것을 볼 수 있습니다. 초기 게임에서 이것은 리소스를 효율적으로 수집하기 위한 코드 작성을 의미합니다. 

게임 후반에 여러 방 사이의 리소스를 조정하여 여러 개의 핵을 생성하고 연료를 공급할 수 있습니다. Nuker는 다른 플레이어의 방을 핵 공격 할 수 있는 구조입니다.


AI 코딩 


몇 주 동안 Screeps를 플레이 한 후, 식민지는 탑을 사용하여 자원을 확보하고 구조물을 수리하며 공격자로부터 방어 할 수 있을 만큼 똑똑합니다. 아직 크립을 지원하는 멋진 머신 러닝 알고리즘이 없으며 간단한 스크립팅만으로 구동됩니다. 

Screeps는 게임 방식에 있어 매우 개방적이라는 점에서 독창적 인 게임입니다. 크리프를 완전히 자율적으로 프로그래밍하거나 나처럼 프로그래밍 할 수 있습니다. 크리프를 수동으로 개입하여 리소스 생성에 영향을 미치도록 변수를 변경하고 변경하도록 크리프를 안내 할 수 있습니다. 

예를 들어, 내 식민지 대부분은 자율적이지만, 콜로니의 현재 요구에 따라 수동으로 변경하는 수확기, 건축업자 및 공격자와 같은 특정 역할에 할당 된 크립 수가 있는 상수 파일이 있습니다. 또한 적의 방에 수동으로 깃발을 심어 공격자가 깃발을 향해 이동하도록 한 다음 적의 방에 도착하면 공격 할 수 있습니다. 

이것은 코드 작성과 보다 수동적 인 RTS와 같은 게임 플레이의 깔끔한 하이브리드 게임 플레이를 만듭니다.


목표 


Screeps의 목표는 월 단위로 재설정되는 순위표를 올리는 것입니다. 컨트롤러를 업그레이드 할 때 획득 한 제어 포인트 수에 따라 플레이어의 순위가 결정됩니다. 각 방에는 에너지를 보내도록 크리프를 프로그래밍하여 업그레이드 할 수있는 컨트롤러라는 구조가 있습니다. 

더 많은 방을 제어할수록 더 빠르게 레벨을 올릴 수 있으며 순위가 높아집니다. 당신이 통제하는 방의 양은 당신의 방을 업그레이드하여 레벨을 올릴 수 있는 “Global Control Level”에 의해 제한됩니다.


음자리표 재생의 장점 


저는 항상 비디오 게임을 좋아했으며 주로 엔터테인먼트 형태로 보고 있습니다. Screeps는 내가 플레이함으로써 실제 기술을 습득한다고 느끼는 몇 안되는 게임 중 하나입니다. 

저는 전문 JavaScript 개발자이기 때문에 JavaScript로 프로그래밍을 연습하고 동시에 게임을 할 수 있다는 것은 매우 멋진 일입니다. 

코딩 방법을 모르는 사람들에게는 이 게임이 판매되지 않지만, 시작하기 전에 기본 사항에 대한 온라인 과정을 밟으면 JavaScript를 배우려는 사람들에게도 도움이 될 것이라고 생각합니다. 

Screeps는 단순한 게임 외에도 새로운 도구와 코딩 패턴을 실험 할 수 있는 놀이터입니다. 예를 들어, TypeScript를 전문적으로 사용할 기회는 없었지만 Screeps 코드를 TypeScript로 변환하여 사용해 볼 계획입니다.


당신이 screeps를 시도하고 싶다면, 그들의 웹 사이트를 확인하십시오.