메타캣 번역
비플레이어 캐릭터(NPC)는 게임 월드의 영구 거주자로, 플레이어가 행동을 제어할 수 없는 존재입니다. 대신 게임 개발자가 미리 작성한 일련의 조건에 따라 행동이 결정되며, 게임 개발자는 세계 상태에 따라 NPC가 취해야 할 행동을 평가하며, NPC는 일반적으로 대화 중심의 스토리 진행, 상인이 배포한 아이템, 적과의 전투에서 퀘스트 제공자 및 동료로 등장합니다.
유니버설의 게임 오리 오리 파괴는 플레이어가 NPC의 의사 결정 트리를 스크립팅하여 자율 월드에 배포할 수 있는 모델을 보여주는 사례 연구입니다.
동기부여
우리의 프로토 언어는 전용 하향식 마스터 컨트롤 레이어를 통해 게임 플레이에 규칙과 로어 제작을 도입하는 Gnomik이나 Sentences 같은 프로젝트보다 훨씬 덜 주관적인 성향을 띠고 있습니다. 대신, 우리의 접근 방식은 플레이어가 기본 메커니즘을 방해하지 않으면서도 세계에 미묘한 기여를 할 수 있도록 합니다. <플레이어가 배치할 수 있는 NPC는 월드 인프라의 무결성을 유지하면서 표현력과 상호작용이 가능하기 때문에 집단 창의성과 새로운 스토리텔링에 유리한 매체라고 생각합니다.
역학
덕 덕 디스트럭션은 플레이어가 직접 작성한 NPC 오리들이 경기장 환경에서 전투를 벌이는 게임입니다. 플레이어는 의사 결정 트리 스마트 계약을 통해 오리를 프로그래밍하며, 이 계약은 게임 내 이벤트에 대한 조건부 반응으로 NPC 행동을 식별합니다: '공격을 받으면 현재 위치에서 멀리 이동' 또는 '근접 범위 내에 들어오는 오리를 공격하라. 오리".
충분한 수의 플레이어가 의사 결정 트리를 제출하면 게임 진행자가 게임을 시작합니다. 게임은 자동으로 진행되며, 각 라운드마다 오리들은 프로그래밍된 의사 결정 트리에 따라 행동하도록 유도합니다. 모든 오리가 제거되거나 마지막 오리가 살아남으면 게임이 종료됩니다.
NPC 행동 스크립트: 의사 결정 트리
스마트 컨트랙트
각 NPC 스크립트는 MUD/EVM 호환 스택에 배포된 스마트 컨트랙트입니다. 이러한 스크립트를 특정 월드에 추가하려면 월드 컨트랙트에 플레이어가 배포된 NPC 스마트 컨트랙트의 주소를 제출할 수 있는 등록 기능이 필요합니다. 이 기능은 게임 진행 상황, 에셋 소유권 또는 간단한 주소 화이트리스트에 따라 선택적으로 제한할 수 있습니다.
스크립트가 등록되면 상위 월드에서 직접 또는 플레이어 행동의 간접적인 결과로 스크립트를 호출합니다. 기본 MUD/EVM에는 스크립트를 자율적으로 활성화하는 틱 메커니즘이나 다른 수단이 없기 때문에 본질적으로 수동적이며, NPC가 취하는 모든 액션은 플레이어가 시작한 액션을 전제로 합니다. 따라서 스크립트의 부모 월드에는 NPC의 스크립트 실행을 트리거하는 함수 호출이 포함되어야 합니다.
실행이 트리거되면 NPC 스크립트는 월드 상태를 사용하고 미리 정의된 로직과 프로그래밍에 따라 행동 방침을 평가합니다.
적용
덕 덕 디스트럭션은 빠르게 진행되는 전투 환경에 NPC를 배치하여 독창적인 기본 메커니즘을 최소한으로 선보입니다. 세션 기반 모델이기 때문에 직접 상호작용할 수 있는 풍부한 주변 환경이 부족하여 현재는 NPC 보육원과 유사하게 작동합니다. 하지만 이 원시적인 요소가 플레이어 프롬프트를 통해 비동기적으로 NPC 반응이 트리거되는 보다 개방적인 샌드박스 월드에서 사용되는 것을 상상해볼 수 있습니다. 예를 들어 플레이어를 따라다니며 환경과 다른 캐릭터에 고유하게 반응하는 프로그래밍 가능한 개성을 가진 동반자 펫을 사용하면 행동이 복잡해질 수 있습니다. 이러한 복잡성으로 인해 세계는 예측할 수 없고 놀라움으로 가득 차게 됩니다. 예를 들어 드워프 포트리스에서는 플레이어가 건설한 하수구에서 하마의 논리에 따라 물이 있는 환경이 적절한 서식지라는 것을 알게 된 NPC 하마를 우연히 발견할 수 있습니다.
계층적 NPC를 배치하고 다양한 행동을 수행할 수 있는 월드에서는 플레이어 캐릭터와 NPC 간의 상호작용을 통해 공동의 목표를 결정하고 추구하는 연쇄적인 스토리텔링 방식으로 분기 퀘스트 라인을 안내하는 협업을 할 수도 있습니다.
대안
개념적으로 대안은 플레이어가 작성한 로직을 사용하여 NPC 표현을 넘어 세계관의 특정 부분이나 장착 가능한 아이템으로 적용 범위를 확장할 수 있습니다. 예를 들어 게릴라에게 포위되면 깃발과 장식이 깔끔하게 바뀌는 전초기지나 상대가 장거리 무기를 사용할 때마다 플레이어의 인벤토리에서 연막탄을 발동하는 플레이어 프로그래밍 사이버 펑크 장치가 될 수 있습니다.
우리의 작업은 투명성을 생성 기능으로 명시적으로 구성하려고 시도하지만, 영지식 증명으로 구축된 구현은 보다 경쟁적인 환경에서 활용될 수 있습니다.토폴로지의 쇼신은 플레이어가 개인 의사 결정 트리로 전투 NPC를 스크립팅하고 제출할 수 있는 예시입니다.EZKL과 같은 영지식 스택은 다음을 수행할 수 있습니다. EZKL과 같은 영지식 스택은 검증 가능한 오프체인 연산 작업을 가능하게 하며, AI/ML 모델 통합을 포함해 더 복잡하고 표현력이 풍부한 NPC 로직을 구현할 수 있습니다.
이 두 가지 대안 모두 체인 스토리 상호운용성이 직관적이지 않다는 단점이 있습니다. 특히 EZKL은 증명 백엔드에 의존하기 때문에 엄밀한 의미에서 월드 메커니즘의 자율성이 떨어집니다. 그럼에도 불구하고 이러한 대안은 월드에 탐험을 게임플레이에 통합하고, 더 나은 기여자 경험을 제공하며, 잠재적으로 봇 저항을 강화할 수 있다는 점에서 흥미로운 대안이라고 생각합니다.
확장
현재 덕 덕 파괴 게임플레이 매치를 시작하는 플레이어는 등록된 모든 NPC 계약을 실행하여 발생하는 네트워크 비용을 부담해야 합니다. 플레이어가 자원을 모을 수 있는 전용 펀드 계약이나 지불자 확장을 통한 가스 보조금 모델을 통해 이 문제를 개선할 수 있습니다.
감사
컨트랙트 설계 및 엔지니어링은 노스왑에서 수행했습니다. 시각적 자산 패키지는 차 스트라지치치의 작품이며, SFX는 오리온 오하나의 작품으로 CC BY 4.0에 따라 공개되었습니다.