- 게임 제작에 유용한 AI 서비스 정리 (1)2023년 04월 09일 20시 34분 54초에 업로드 된 글입니다.작성자: kugorang
TL;DR — 3줄 핵심 요약
• 문제: 2023년 초, 게임을 만드는 일에 AI를 어디에 어떻게 쓸 수 있는지 판단할 기준이 없었다.
• 기술/원인: ChatGPT는 글을 만들어 내는 언어 모델이고, 결과는 하이퍼파라미터(최대 길이, temperature, top-k, top-p, beam width) 값에 따라 달라진다. 같은 질문도 값이 다르면 답의 길이와 다양성이 달라진다.
• 해결/인사이트: 사용법을 외우는 대신 같은 질문을 값만 바꿔 여러 번 받아 비교했다. BlenderGPT, AIShader, AICommand처럼 자연어를 코드로 바꿔 주는 도구가 이미 공개되어 있었지만, 당시에는 초기 단계였다.
들어가며: AI를 대체가 아니라 도구로 본다

이 이미지는 사람이 만들었을까, 인공지능이 만들었을까? 위 이미지는 사람이 만든 것일까, 인공지능이 만든 것일까. 2016년 알파고 이후 인공지능은 연구 주제였는데, 2023년에 들어 상용 서비스로 널리 쓰이기 시작했다. 나는 AI가 개발자를 완전히 대체하기보다 제품을 만드는 과정을 돕는 도구라고 본다. 그래서 기술이 어디까지 되는지 직접 써 보며 확인하고 있다.
ChatGPT: 무엇을 하는 서비스인가

이제 AI를 언급함에 있어 ChatGPT는 빠질 수 없는 필수 요건이 되었다. OpenAI가 만든 대화형 챗봇이다. 2022년 11월에 공개됐고, 2023년 초에는 유료 결제로 GPT-4 모델을 쓸 수 있었다. 나도 월 20달러를 내고 사용했다. 질문을 적으면 그 질문에 맞는 글을 만들어 주는 방식이다.

매월 20 달러만 내면 말을 참 예쁘게 하는 친구와 어느 주제든 이야기할 수 있다. 쓸수록 느낀 것은, 좋은 답을 받으려면 질문을 어떻게 쓰는지가 중요하다는 점이었다. 이렇게 질문을 설계하는 일을 프롬프트 엔지니어링이라고 부른다. 그중 하이퍼파라미터라는 개념을 서울디지털재단의 활용 사례 글에서 알게 됐다.
서울디지털재단
서울디지털재단 홈페이지입니다.
sdf.seoul.kr
그 글에서 가장 기억에 남은 문장은 "ChatGPT 사용 방법은 ChatGPT에게 물어보라"였다. 그래서 하이퍼파라미터가 무엇인지, 게임 개발에서는 어떻게 쓰는지 직접 물었다.
하이퍼파라미터: 답의 길이와 다양성을 조절하는 값
하이퍼파라미터는 모델을 쓸 때 사용자가 직접 정하는 설정값이다. 모델 내부의 가중치처럼 학습으로 정해지는 값이 아니라, 실행할 때 밖에서 넣는 값이다. 종류와 역할은 다음과 같다.
- Max tokens: 만들어 낼 글의 최대 길이다. 대화창의 길이 제한 안에서 답을 자를 때 쓴다.
- Temperature: 값이 낮으면 자주 나오는 답을 고르고, 높으면 드문 답도 고른다. 낮으면 일정하고, 높으면 다양하다.
- Top-k sampling: 다음에 올 단어 후보를 확률 순서로 k개만 남기고 그 안에서 고른다.
- Top-p sampling: 후보의 확률을 더해 p가 될 때까지 남기고 그 안에서 고른다.
- Beam width: 답 하나를 바로 고르지 않고 여러 갈래를 동시에 계산한 뒤 가장 좋은 것을 고른다. 계산량이 늘고 품질이 오른다.
- Number of responses: 같은 질문에 답을 여러 개 만들어 비교할 수 있게 한다.
이 설명을 읽고 든 생각은 "유용한 건 알겠는데, 그래서 어떻게 쓰라는 것인가"였다. 개념만으로는 쓸 수 없었다. 그래서 예시를 다시 요청했다.
같은 질문, 다른 설정: 드래곤을 물리치는 방법
"어떻게 드래곤을 물리치나요?"라는 질문을 넣고 설정값만 바꿔 받은 답이다.
- 기본 설정: "드래곤의 불 같은 입김을 견딜 수 있는 강력한 무기와 갑옷을 획득해야 합니다. 눈과 아랫배 같은 약점을 노려야 합니다."
- temperature 0.5(낮음): "강력한 무기를 찾고 내화 갑옷을 착용하세요. 눈과 배 같은 취약한 부위를 겨냥하고 불 입김을 피하세요." 짧고 같은 내용이 반복된다.
- temperature 1.5(높음): "폭발성 통으로 가득 찬 동굴로 용을 유인하는 것입니다. 드래곤이 들어올 때 통에 불을 붙이면 폭발로 약화시켜 끝낼 수 있습니다." 앞의 두 답에 없던 방법이 나온다.
- top_k 50: "전략과 힘이 조화를 이루어야 합니다. 원거리 무기를 사용하고, 불 입김과 꼬리 공격을 피하세요."
- beam_width 5: 앞의 답들을 섞은 듯 정리된 문장이 나온다. 조건을 여러 개 나열한다.
이 비교로 알게 된 것은 간단하다. 같은 내용을 짧고 일정하게 받고 싶으면 temperature를 낮추고, 아이디어를 넓게 받고 싶으면 높인다. 게임 대화를 만들 때는 낮은 값으로 말투를 일정하게 유지하고, 퀘스트 아이디어를 낼 때는 높은 값을 쓴다.

마치 교수님 강의 내용을 이해 못 한 학부생과 같았다. 
더 열심히 GPT 사용법을 익혀야 할 것 같다는 생각이 들었다. "구글링"이라는 말을 처음 접했을 때처럼, 도구를 잘 쓰는 방법 자체가 하나의 기술이라는 느낌을 받았다. 그래서 엔지니어링이라는 단어가 붙는다는 것을 알았다.
게임 개발에 이미 쓰인 예
ChatGPT가 게임 개발에서 가장 먼저 쓰이는 곳은 자연어를 코드나 명령으로 바꾸는 일이다. 2023년 초에도 공개된 도구가 있었다.
BlenderGPT: 말로 블렌더를 조작한다
블렌더는 3D 모델을 만드는 무료 프로그램이고, 파이썬 스크립트로 작업을 자동화할 수 있다. BlenderGPT는 영어 명령을 넣으면 그에 맞는 파이썬 스크립트를 만들어 실행한다.
GitHub - gd3kr/BlenderGPT: Use commands in English to control Blender with OpenAI's GPT-4
Use commands in English to control Blender with OpenAI's GPT-4 - GitHub - gd3kr/BlenderGPT: Use commands in English to control Blender with OpenAI's GPT-4
github.com
AIShader: 말로 셰이더를 만든다
셰이더는 화면의 색과 빛을 계산하는 코드다. Unity에서 쓰이며 문법이 따로 있어 처음 배우기 어렵다. AIShader는 "단순하면서 화려한 셰이더" 같은 문장을 넣으면 셰이더 코드를 만들어 준다.
GitHub - keijiro/AIShader: ChatGPT-powered shader generator for Unity
ChatGPT-powered shader generator for Unity. Contribute to keijiro/AIShader development by creating an account on GitHub.
github.com

"단순하면서 화려한 셰이더 짜줘!" 가 어쩌면 가능할지도 모르겠다. AICommand: 말로 에디터 명령을 실행한다
AICommand는 Unity 편집기에서 자연어 명령을 받아 그에 해당하는 작업을 실행한다. 오브젝트를 만들거나 배치하는 일을 문장으로 지시할 수 있다.
GitHub - keijiro/AICommand: ChatGPT integration with Unity Editor
ChatGPT integration with Unity Editor. Contribute to keijiro/AICommand development by creating an account on GitHub.
github.com

이 도구들은 당시 초기 개발 단계여서 제품에 그대로 넣기 어려웠다. 만든 코드가 항상 맞는 것도 아니고, 실행 결과를 사람이 확인해야 했다. 코드 수정, 모의 시험, 실제 기기 검증, 운영 반영은 각각 다른 단계이며, AI가 만든 코드는 첫 단계의 초안일 뿐이다.
정리와 다음 글
2023년 초에 확인한 것은 세 가지다. ChatGPT는 질문 설계에 따라 결과가 달라지고, 하이퍼파라미터로 답의 길이와 다양성을 조절하며, 자연어를 코드로 바꾸는 도구가 이미 게임 제작 도구에 붙어 있었다. 다만 결과를 검증하는 일은 여전히 사람이 해야 한다.
글이 길어져 두 편으로 나눈다. 다음 글에서는 Midjourney, DALL-E처럼 이미지 리소스를 만드는 도구를 정리한다.
자주 묻는 질문 (FAQ)
Q1. temperature는 낮을수록 좋은가요?
A. 목적에 따라 다르다. 같은 형식의 답을 안정적으로 받아야 하면 낮은 값(0.2~0.5)이 좋고, 아이디어를 여러 개 받고 싶으면 높은 값(1.0 이상)이 좋다. 높은 값은 사실과 다른 내용을 만들 가능성도 커진다.
Q2. ChatGPT가 만든 코드를 게임에 바로 넣어도 되나요?
A. 바로 넣지 않는 것이 좋다. 만든 코드는 초안으로 보고, 컴파일과 실행, 예외 상황, 성능을 사람이 확인해야 한다. 코드 수정과 실제 기기 검증, 운영 반영은 서로 다른 단계다.
Q3. BlenderGPT 같은 도구는 지금도 쓸 수 있나요?
A. 저장소는 공개되어 있지만 2023년 초 기준으로 초기 단계다. 블렌더와 Unity 버전이 바뀌면 동작하지 않을 수 있으므로, 저장소의 최근 커밋 날짜와 지원 버전을 먼저 확인해야 한다.
728x90728x90'게임 개발' 카테고리의 다른 글
게임 제작에 유용한 AI 서비스 정리 (2) (3) 2023.04.23 다음글이 없습니다.이전글이 없습니다.댓글