Chaos Lab 구축: 환경 변수가 자연 법칙이 될 때
Source: Dev.to
개요
전통적인 게임 개발에서는 물리 엔진과 생물학적 규칙을 하드코딩하는 경우가 많습니다. Chaos Lab에서는 스크립트를 뒤집어, 설정 파일 자체가 게임 엔진이 되도록 했습니다.
Reactive Config 아키텍처
이 프로젝트는 Reactive Config 아키텍처 위에 구축되었습니다. 그 핵심에는 Varlock이라는, AI‑안전하고 스키마‑검증된 환경 변수를 만들기 위한 툴킷이 있습니다.
Varlock 스키마
process.env.GRAVITY를 수동으로 확인하는 대신, .env.schema 파일에 동작을 정의합니다:
# @spec WORLD_GRAVITY
# @description The strength of planetary attraction.
# @type number(min=0.1, max=2.0)
WORLD_GRAVITY=1.0
Varlock은 사용자가—또는 AI 에이전트가—환경을 어떻게 수정하든 값이 “물리적으로 가능한” 범위 내에 머물도록 보장합니다.
Chokidar를 이용한 실시간 검증
서버에서는 Chokidar를 사용해 .env 변경을 감시합니다. 변경이 발생하면 Varlock의 내부 그래프 로더가 새로운 상태를 검증합니다:
const graph = await internal.loadVarlockEnvGraph({
entryFilePaths: [path.join(__dirname, '.env.schema')]
});
await graph.resolveEnvValues();
const serialized = graph.getSerializedGraph();
// Broadcast currentValues via Socket.IO
Google Gemini와의 AI 통합
가장 흥미로운 부분은 Varlock 메타데이터를 Google Gemini에 전달하는 방식입니다. AI에게 “이야기를 해줘”라고 묻는 대신, 스키마에 정의된 설명과 타입을 제공해 모델이 숫자의 의미를 이해하도록 합니다.
const prompt = `
LAWS OF NATURE (Varlock Metadata): ${JSON.stringify(metadata)}
CURRENT VALUES: ${JSON.stringify(values)}
Describe the ecosystem evolution based on these specific constraints...
`;
예를 들어 ATMOSPHERE_TOXICITY가 높다면, AI는 생물들이 왜 숨을 헐떡이는지 알게 됩니다.
UI 진화
UI는 어두운 브루탈리스트 터미널에서 시작했습니다. 최근에는 Tailwind CSS의 은은한 슬레이트와 블루 팔레트를 활용한 Light Lab 미학으로 전환해, 시뮬레이션 속 “혼돈”과 아름답게 대비되는 깔끔하고 임상적인 환경을 만들었습니다.
결론
Chaos Lab은 새로운 패턴을 보여줍니다: 스키마‑구동 AI 애플리케이션. Varlock(https://varlock.dev)과 같은 도구를 사용해 LLM에 구조화된 컨텍스트를 제공함으로써, 신뢰할 수 있고 해석 가능하며 매우 동적인, 살아있는 느낌의 시스템을 구축할 수 있습니다.
- GitHub: (원본 내용에 링크가 제공되지 않음)