전부 선택 사항입니다
Deki에는 AI가 들어 있지 않습니다. 엔진도, 에디터도, 여러분이 만든 게임도 모델을 호출하지 않고, 계정이 필요 없으며, 어디로도 아무것도 보내지 않습니다. 이 페이지는 이미 쓰고 있는 에이전트에게 에디터를 맡기는 방법을 설명하며, 그 모든 일은 에디터에서 직접 손으로도 할 수 있습니다.
에이전트를 쓰지 않는다면 이 페이지는 건너뛰어도 됩니다. 사이트의 다른 부분은 이것에 의존하지 않고, 프로젝트에도 아무 변화가 없습니다.
Deki를 만드는 방식
엔진과 에디터는 AI의 도움을 받아 개발합니다. AI 에이전트와 함께 작업하며, 그 상당 부분은 이 페이지에 있는 도구를 통해 이루어집니다. 이것은 Deki를 만드는 방식일 뿐, 여러분에게 요구하는 것이 아닙니다. 배포되는 것은 평범한 C++이고, 그것으로 만든 게임에는 AI가 들어 있지 않습니다.
에이전트가 할 수 있는 일
에디터에는 MCP 서버가 내장되어 있습니다. 여기에 연결한 에이전트는 에디터 자체의 명령줄과 같은 도구 약 80개를 쓸 수 있습니다.
| 분야 | 도구 |
|---|---|
| 씬 | 오브젝트 생성, 삭제, 복제, 이름 변경, 부모 변경. 이동, 회전, 크기 조절. 컴포넌트 추가와 제거. 속성 읽기와 설정. 실행 취소와 다시 실행. 씬 열기, 저장, 새로 만들기. |
| 에셋 | 에셋 목록, 가져오기, 이동, 생성, 열기. 에셋 브라우저에서 선택. |
| 프로젝트 | 프로젝트 생성과 열기, 프로젝트 설정과 시작 씬 지정, 패키지 설치, 코드 다시 빌드. |
| 빌드 | 플랫폼 선택, 펌웨어 빌드, 플래시나 설치, 툴체인 확인, 정리. |
| 보드 | 연결된 보드가 보여 주는 화면의 스크린샷, 프레임 레이트와 남은 메모리 읽기. |
| 창 | 에디터 전체나 패널 하나의 스크린샷, 프레임 시퀀스, 클릭, 드래그, 키 입력과 텍스트 입력, 패널 열기와 포커스, 대화 상자 응답. |
열려 있는 씬, 컴포넌트 목록, 프로젝트 설정은 MCP 리소스로도 읽을 수 있습니다. 패키지는 자체 도구를 추가할 수 있고, 그 도구도 같은 목록에 나타납니다.
이것으로 가능한 가장 긴 루프는 이렇습니다. 컴포넌트를 바꾸고, 다시 빌드하고, 씬을 플레이하고, 스크린샷을 찍고, 펌웨어를 빌드하고, 보드에 플래시하고, 보드의 스크린샷을 찍어 프레임 레이트를 읽습니다. 에이전트는 사람이 끼지 않고 이 루프를 돌 수 있습니다. 이 사이트의 에디터 이미지는 모두 이 도구들로 만들었습니다.
클라이언트 연결
모든 에디터 창은 자기 컴퓨터 안(127.0.0.1)에서만 서버를 실행하며, 토큰이 있는 요청에만 응답합니다. 상태 표시줄 오른쪽 아래의 MCP가 실행 중임을 보여 줍니다.
- 에디터에서 프로젝트를 엽니다.
- 상태 표시줄의 MCP를 마우스 오른쪽 버튼으로 클릭합니다. 토큰이 포함된 연결 URL이 복사됩니다.
- 그 URL을 MCP 클라이언트에 SSE 서버로 넣습니다.
예를 들어 Claude Code에서는:
claude mcp add --transport sse deki "<복사한 URL>"
토큰은 에디터를 시작할 때마다 새로 바뀝니다. 재시작해도 유지되는 설정을 원하면 에디터와 클라이언트 모두에 DEKI_MCP_TOKEN(16자 이상)을 설정하고, 에디터를 --mcp로 시작한 뒤 고정 URL을 씁니다:
DekiEditor --mcp /path/to/project
http://127.0.0.1:3000/sse?token=<DEKI_MCP_TOKEN 값>
3000번 포트가 쓰이고 있으면 --mcp-port로 다른 포트를 고릅니다. 상태 표시줄의 MCP를 클릭하면 서버가 멈춥니다.
MCP 없이
명령을 실행할 수 있는 에이전트라면 MCP가 전혀 필요 없습니다. 같은 도구가 에디터의 명령줄에 있습니다:
DekiEditor --list-tools /path/to/project
DekiEditor --tool get_scene_info /path/to/project
DekiEditor --tool create_object --args '{"name": "Player"}' /path/to/project
--script는 JSON으로 나열한 단계를 차례로 실행하고, 처음 실패한 단계에서 멈춥니다. 어떤 단계든 "as"로 결과를 저장할 수 있고, 뒤의 단계에서 그 결과를 쓸 수 있습니다:
[
{ "tool": "create_object", "args": { "name": "Player" }, "as": "player" },
{ "tool": "set_position", "args": { "object_id": "${player.id}", "x": 160, "y": 120 } },
{ "tool": "save_scene" },
{ "tool": "screenshot", "args": { "path": "C:/shots/player.png", "panel": "Scene View" } }
]
그 프로젝트를 연 에디터가 있으면 명령은 그 에디터에서 실행되고, 변경 사항이 바로 보입니다. 없으면 에디터를 최소화된 채 포커스를 가져가지 않고 열어 두고 실행합니다. --headless는 끝나면 닫히는 숨겨진 에디터에서 실행하며, CI용입니다.
작업 지켜보기
에이전트는 여러분이 볼 수 있는 에디터에서 일합니다. 무언가를 바꾸는 호출마다 보라색 포인터가 그 대상으로 움직입니다. 하이어라키의 오브젝트 행, 인스펙터의 속성, 에셋, 클릭한 정확한 픽셀. “Setting SpriteComponent.color” 같은 라벨이 무엇을 하는지 알려 줍니다. 포인터는 스크린샷에 찍히지 않으며, 몇 초 동안 아무 일이 없으면 사라집니다.
포인터 때문에 변경마다 0.3초를 기다립니다. Editor Settings > MCP > Agent Pointer의 체크를 해제하면 꺼지고, 호출이 즉시 실행됩니다.
여러분에게 남는 것
- 실행 취소. 에이전트가 만든 씬 변경은 여러분의 변경과 같은 실행 취소 기록에 들어가므로, Ctrl+Z로 하나씩 되돌릴 수 있습니다.
- 확인 질문. 에디터가 대화 상자로 여러분에게 물을 일이 있으면, 에이전트에게도 똑같이 묻습니다. 에이전트는 대화 상자를 보고 답해야 하며, 대신 동의해 주는 일은 없습니다.
- 여러분의 데스크톱. 도구는 에디터를 앞으로 가져오거나 키보드를 가져가지 않으므로, 에이전트가 일하는 동안 컴퓨터로 다른 일을 할 수 있습니다.
- 여러분의 컴퓨터. 서버는 루프백에서만 대기하고 토큰이 없는 요청은 거부합니다. 네트워크의 다른 컴퓨터에서는 접근할 수 없습니다.