22P by xguru 3달전 | favorite | 댓글과 토론
  • Braindump는 LLM과 생성형 AI의 새로운 세상에서 게임 제작이 어떤 모습일 수 있을지 상상해보려는 시도
  • Braindump를 이용하면, 단순히 프롬프트를 입력하는 것만으로 탑-다운/2.5D 게임 또는 대화형 세계를 구축할 수 있음
    • 예를 들어 "레이저를 쏘고 BB-8 폭탄을 투하할 수 있는 스타파이터 만들기"라고 입력하면 이를 위한 3D 모델, 게임 데이터 및 스크립트가 생성됨

첫 실험부터 현재까지

  • 약 6개월 전에 단순한 프로토타입으로 시작하여, 3D 모델 생성, 멀티플레이어 기능 추가, UX 여러 번 개선
  • 현재 Braindump에는 다음과 같은 핵심 기능이 있음
    • 유닛, 능력 및 속성 정의(예: "마법 지팡이를 떨구는 HP 50의 오크")
    • 게임 맵에 오브젝트 배치(예: "20마리의 오크를 원 모양으로 배치")
    • 게임 규칙 및 로직 생성(예: "오크의 체력이 0에 도달하면 그 자리에 유령 오크 생성")
    • 새로운 3D 모델 생성(예: "오크를 분홍색으로 만들고 푹신한 귀를 달고 싶어", Meshy를 이용)
  • 모든 것이 통합된 자연어 프롬프트 인터페이스를 통해 접근 가능함

도전 1: 프롬프팅을 위한 UX 설계

  • LLM을 사용하여 무언가를 구축할 때 두 가지 큰 문제가 있음
    1. LLM이 일관되게 원하는 대로 동작하게 하는 방법
    2. LLM과 상호 작용하기 위한 최상의 UX
  • 많은 프롬프트 실험을 통해 현재의 반복적 접근 방식으로 전환함
    • 게임을 한 번에 전체 설명으로부터 생성하는 것은 잘 작동하지 않음
    • 여러 프롬프트를 통해 게임을 점진적으로 구축하면 더 자세히 설명하거나 반복할 기회가 생김
  • 프롬프트와 기존 컨트롤 사이의 적절한 균형을 찾기 위해 계속 실험 중임

도전 2: LLM을 위한 게임 API 설계

  • 기존 게임 엔진에 대한 코드 생성은 어려움이 있었음
    • LLM은 코드 스니펫 생성에는 능숙하지만 더 큰 소프트웨어 조각과 소프트웨어 아키텍처 구축 및 유지 관리에는 어려움을 겪음
  • 대신 LLM이 코드와 데이터 작성에 집중할 수 있도록 가능한 한 많은 구조를 제공하는 매우 간소화된 "게임 API"를 TypeScript로 구축함
  • API에서 생성된 타입 정의(.d.ts)를 GPT에 시스템 프롬프트로 제공하면 GPT는 대부분 첫 번째 시도에서 API를 일관되게 올바르게 사용함
  • 타입 검사는 GPT가 오류를 발견하면 스스로 수정하려 한다는 놀라운 장점도 발견

생성된 매크로

  • 게임 API는 생성된 매크로라는 또 다른 흥미로운 UX 흐름을 열어줌
  • 일반적으로 애플리케이션에서 매크로는 작업을 자동화할 수 있는 작은 프로그램임
  • 브레인덤프 시스템에서는 모든 프롬프트가 코드를 생성하며, 해당 코드는 게임 API에서 다루는 거의 모든 것을 자동화할 수 있음
    • 예를 들어 "모닥불 옆에 텐트 배치"와 같은 프롬프트를 입력할 수 있음
    • 지루한 작업을 자동화할 수도 있음(예: "서로 다른 스탯을 가진 5마리의 서로 다른 고양이 만들기")
    • 계산이 필요한 질문에 답하도록 요청할 수도 있음(예: "북쪽을 향한 텐트는 몇 개야?")
  • 이는 작업 방식에 새로운 길을 열어줌
    • 처음에는 약간 이상하지만 익숙해지면 매우 지루한 작업을 몇 초 만에 창의적인 방법으로 완료할 수 있음

AI와 협업 편집

  • 브레인덤프의 모든 것을 멀티플레이어로 만들고 싶었음
    • 게임 제작과 플레이 모두 해당됨
  • 처음에는 모두가 기여할 수 있는 하나의 큰 채팅만 있었지만 혼란스러웠음
    • 주된 문제는 종종 서로 관련이 없는 두 가지 다른 것에 대해 작업한다는 것임
  • 여러 솔루션을 시도한 후 "Threads"라고 부르는 것으로 수렴함
    • 세계 어디에서나 프롬프트를 시작할 수 있지만 필요할 때 해당 프롬프트를 구체화하거나 추가할 수도 있음
    • 스레드에는 처음에 최신 게임 상태가 제공되지만 프로젝트의 전체 기록은 없음
    • 여러 스레드가 동시에 "실행" 중일 수 있지만 스레드당 한 번에 하나의 프롬프트만 실행될 수 있음
  • 지금까지 이것은 꽤 잘 작동함
    • 테스트에서는 동시에 5명이 같은 세계에서 작업했는데 확실히 약간 혼란스러웠지만 여전히 기능적이었음
    • 사용자가 효과적으로 조정할 수 있는 방법을 적극적으로 모색 중임

벤치마킹 및 테스트

  • 프롬프트 엔진의 성능을 평가하기 위해 벤치마킹 도구를 개발함
    • 이 도구는 각각 고유한 프롬프트가 있는 수십 가지 시나리오를 실행한 다음 GPT를 사용하여 해당 프롬프트의 성공 여부를 평가함
  • "평가자"라는 두 번째 GPT(자체 시스템 프롬프트 포함)에 이러한 조건, 완료 시 시뮬레이션 상태 및 발생한 모든 오류가 제공되며 테스트가 성공했는지 여부를 판단하도록 요청받음
  • 테스트 스위트는 아직 초기 단계이지만 새로운 프롬프트 스타일과 실패 사례를 발견할 때마다 점점 더 많은 테스트를 추가하고 있음

Braindump를 만드는 이유

  • 개인적으로 게임과 창의성을 항상 사랑해왔음
  • 생성형 AI는 생산성 향상의 자연스러운 다음 단계임
    • 이를 통해 단순히 더 많은 일을 할 수 있음
  • 대형 스튜디오가 점점 더 보수적인 게임을 만들고 있기 때문에 소규모 그룹이나 심지어 개인이 꿈의 게임을 만들 수 있도록 권한을 부여하는 것이 기쁨
  • 사람들이 손끝에서 전체 AI 게임 스튜디오를 가지고 있을 때 어떤 미친 아이디어를 내고 실현할지 보고 싶음

앞으로의 계획

  • 브레인덤프는 이제 막 시작되었음
  • 현재 "명령" 실행에는 꽤 능숙하지만("고양이 만들기") 훨씬 더 모호하거나 "큰" 작업도 처리할 수 있도록 확장할 수 있다는 것을 알고 있음
  • 다음과 같은 사항을 연구하고 있음
    • Planning을 통해 "더 큰" 프롬프트 지원
    • GPT가 추측을 멈추고 대신 사용자에게 명확히 할 것을 요청하도록 함
    • GPT가 자신의 작업을 비판하도록 하여 코드 품질 개선
    • 발견 가능성 및 영감 개선("이것으로 무엇을 만들 수 있을까?")
    • LLM에 적합한 방식으로 게임 엔진 기능 개선