Daily e-sports

[기획] 천리 길도 한 걸음부터, AI 바이브 코딩 개발환경 구축 도전

(출처=구글 나노바나나 AI 제작).
(출처=구글 나노바나나 AI 제작).
인공지능(AI)과 바이브 코딩의 가능성을 위해 개발한 하이퍼 캐주얼 게임 '스페이스 어웨이'는 충분히 만족스러운 결과물이었습니다. 게임을 고도화하는 데 사람의 노력이 투입돼야 했지만, 기본적인 코딩은 간단한 프롬프트(명령어)만으로 가능하다는 점을 확인했다는 점에서 의미가 있습니다.

다음 단계는 캐주얼 게임을 포함한 미드코어급 게임을 개발해 보는 것으로 설정했습니다. 바이브 코딩을 통한 게임 개발이 가능성을 점검했으니, 실용성이 있는지를 확인해보고 싶어졌기 때문입니다. 그런데 최근 AI 동향과 조사 결과를 종합해보면, 거대언어모델(LLM)이 제공하는 캔버스나 채팅 인터페이스로는 한계가 있을 것이란 생각이 들었습니다. 수백~수천 줄의 코드로 완성되는 작은 게임과 달리, 미드코어 게임은 십수만 줄까지 코드 양이 방대해질 수 있기 때문입니다.
◆ 잘 까먹는 AI, 복잡한 코딩엔 '채팅'보다 '로컬 환경'

AI 모델이 새로운 데이터를 학습할 때 이전에 학습했던 정보를 급격하게 잊어버리는 AI 건망증(파괴적 망각)을 개선하기 위한 다양한 연구가 진행 중이다(출처=구글 리서치 블로그).
AI 모델이 새로운 데이터를 학습할 때 이전에 학습했던 정보를 급격하게 잊어버리는 AI 건망증(파괴적 망각)을 개선하기 위한 다양한 연구가 진행 중이다(출처=구글 리서치 블로그).
최근 AI 연구 동향을 보면, 실제로 여러 AI가 메모리 등의 문제로 기억을 잃거나, 다른 결과를 내놓는 문제 등이 지적되고 있습니다. 이유는 파괴적 망각이라 부르는 AI의 건망증입니다. 대화 내용을 기억하는 컨텍스트 윈도우(Context Window) 용량이 제한돼, 오랜 시간 많은 대화를 나눈 내용을 잊어버리는 것입니다. 이용자는 AI가 한 채팅창(인터페이스)에서 나눈 대화 모두를 기억한다고 생각할 수 있지만, 실제로는 대화에 허용된 만큼만 내용을 기억하고 오래되거나 초창기에 나눈 대화를 마치 건망증이 든 것처럼 까먹는 것입니다.

프롬프트의 질문 의도 자체를 왜곡하는 경우도 있습니다. 최신 연구에 따르면 LLM은 입력값이 너무 길어질 경우, 본문의 중간에 있는 정보보다 처음과 끝에 있는 정보에 더 집중하는 경향을 보인다고 합니다. 서론과 결론만 주목해서, 세부적인 '디테일'을 챙기지 못한다는 건데요. 이는 논리적인 흐름을 기반으로 하는 프로그래밍을 만들 때 특히 치명적으로, 프로젝트 중반부에 정의한 복잡한 함수 로직이나 변수명을 AI가 무시하거나 헷갈려 하면서 버그가 기하급수적으로 늘어날 수 있다고 합니다.
이런 문제들과 함께 본격적인 게임 개발을 위해서는 개발환경을 구축할 필요성이 느껴졌습니다. 실제로 구글의 재미니에게 물어본 결과도 마찬가지였습니다. 재미니는 "단순히 챗GPT와 대화하는 것은 '코딩 과외'를 받는 수준에 머문다"라며 미드코어 수준의 PC 패키지 게임(스탠드 얼론) 개발을 위해서는 개발 환경을 구축할 것을 권장했습니다. 그렇다면 어떤 프로그램을 노트북에 깔아야 게임을 만들 수 있는 걸까요?

◆ 깊어지는 고민, 어떤 게임을 만들 것인가

AI는 액션 게임이란 키워드를 이유로 소울라이크 장르를 개발하길 추천하기도 했다. 사진은 네오위즈의 소울라이크 액션게임 'P의 거짓'(제공=네오위즈).
AI는 액션 게임이란 키워드를 이유로 소울라이크 장르를 개발하길 추천하기도 했다. 사진은 네오위즈의 소울라이크 액션게임 'P의 거짓'(제공=네오위즈).
개발 환경을 구축하기에 앞서 결정해야 할 것이 있었습니다. 바로 어떤 게임을 만들 것인가 하는 근본적인 물음입니다. 장르를 결정해야, 어떤 개발툴을 쓸지 판단할 수 있다는 생각도 들었습니다. 어디까지나 실험이 목적이기에 구현이 비교적 간단한 슈팅 장르를 만들지, 아니면 상용게임에 가까운 액션 게임을 만들지 결정이 어려웠습니다.

그래서 고민 중인 내용을 AI에게 구구절절 설명하고, 어떤 장르 게임이 더 좋을지 먼저 물어봤습니다. 프롬프트는 "게임 기자가 AI 바이브 코딩 기획 기사를 위해 만들 수 있는 미드코어 게임은 어떤 장르가 좋을까"로 결정하고 재미니와 챗GPT에게 같은 질문을 던졌습니다. 이때, 기존 채팅에서 다룬 '스페이스 어웨이' 프로젝트 내용이 섞이지 않도록 새로운 채팅 인터페이스를 통해 진행했습니다.

먼저 재미니는 ▲뱀서류(뱀파이어서바이버 라이크) ▲로그라이크 덱빌딩 ▲탑다운 익스트랙션 슈터 등을 추천했습니다. 아무래도 미드코어란 키워드가 '바이브 코딩 실험'보다 우선시 된 느낌입니다. 그래서 프롬프트에서 미드코어 장르를 빼고, 개발 지식이 없는 사람이란 점을 강조해 다시 물었습니다. 후속 프롬프트에서 '개발 지식이 없는 사람'이란 점을 강조했음에도 여전히 뱀서류, 경영 타이쿤, 카드배틀 RPG 등 진행 규칙의 설계가 필요한 장르를 추천해주네요.
종스크롤 슈팅게임 게임으로 개발 가능 여부를 검토하고, 최종적으로 뱀서류 게임을 개발하는 것을 목표로 프로젝트를 진행하기로 결정했다. 사진은 '뱀파이어 서바이벌' 플레이화면(출처=스마일게이트 스토브 판매 페이지).
종스크롤 슈팅게임 게임으로 개발 가능 여부를 검토하고, 최종적으로 뱀서류 게임을 개발하는 것을 목표로 프로젝트를 진행하기로 결정했다. 사진은 '뱀파이어 서바이벌' 플레이화면(출처=스마일게이트 스토브 판매 페이지).
결국, AI에게 모든 것을 맡긴다는 원칙을 잠시 접어두고 슈팅 장르를 우선 개발하기로 결정했습니다. 슈팅은 입출력(I/O), 애니메이션, 충돌 판정 등이 비교적 명확해 개발이 상대적으로 쉬운 장르에 속합니다. 이를 통해 프로토타입을 만들고, 기술검증(PoC) 단계를 어떻게 접근해야 할지부터 알아보는 것이 다음 프로젝트를 위해 건설적인 방안이 될 것이라고 판단했습니다. 오락실에서 즐기던 종스크롤 비행슈팅 게임을 만든 뒤에, 여러 기능을 확장하면 뱀서류 게임 개발도 가능할 것이란 생각이 들었습니다.

챗GPT는 이 계획을 "목표가 '코딩 지식이 거의 없는 기자가 AI만으로 미드코어 게임을 만들 수 있는가'이기 때문에, 처음부터 미드코어 규모를 들이밀 경우 실패 원인을 분리하기 어렵다"라며 "슈팅은 미드코어 게임에 필요한 최소 공통 분모를 거의 다 건드린다"라고 긍정적으로 분석했습니다. 제미니는 ▲즉각적인 시각적 피드백 ▲프로그래밍 역사상 가장 표준화된 데이터를 가진 장르 ▲뱀서류로의 확장 가능 등을 이유로 계획을 찬성했습니다. 끝까지 뱀서류를 주장하는 모습이 일관성은 있네요.

◆ 챗GPT의 조언 "비전공자라면 파이썬과 VS Code로 시작하세요"

챗GPT가 파이썬을 추천한 이유는 빠른 설치와 사용의 편리함이다. 반면, 중대형 프로젝트를 준비하고 있다면 확장이 쉬운 유니티와 같은 상용 엔진을 쓰길 권했다.
챗GPT가 파이썬을 추천한 이유는 빠른 설치와 사용의 편리함이다. 반면, 중대형 프로젝트를 준비하고 있다면 확장이 쉬운 유니티와 같은 상용 엔진을 쓰길 권했다.
게임 장르 설정이 끝났으니, 본격적인 개발 환경을 만들기에 돌입했습니다. 챗GPT는 실험과 기술검증이 목적이라면 파이썬을 설치하길 권했습니다. 파이썬은 C언어나 자바스크립트와 같은 프로그래밍 언어로, 배우기 쉽고 강력하며 활용도가 높아 게임 개발에 폭넓게 쓰입니다.

여기에 AI로 생성한 코드를 적용하기 좋은 'VS Code' 편집기(에디터)와 게임 개발용 라이브러리로 'pygame-ce'를 쓰길 추천했네요. 여기에 프로젝트 관리를 위한 'venv' 등을 추천했지만, 가장 기본적인 환경만을 구축해서 진행하는 것으로 기준으로 삼고 꼭 필요한 것들만 설치하기로 결정했습니다.

재미니가 알려준 링크에서 윈도우용 파이썬 설치파일을 다운로드 받아 설치했다.
재미니가 알려준 링크에서 윈도우용 파이썬 설치파일을 다운로드 받아 설치했다.
이때 예상치 못한 문제가 발생했습니다. 챗GPT가 파이썬과 라이브러리 설치 명령어를 툭하고 제시할 뿐, 구체적인 행동을 어떻게 해야하는지는 알려주지 않았습니다. 알려준 명령어도 리눅스라 유닉스 운영체제(OS) 명령어처럼 보여서, 윈도우를 쓰는 '개발 문외한'이 따라하기에는 너무 어려웠습니다. 그래서 인스톨러 설치 파일을 다운로드해서 설치하는 법은 없는지 등을 계속해서 물어봐야 했습니다.

제미니에게도 "파이썬 개발 환경을 윈도우 노트북에 구성하고 싶어. 개발을 모르는 사람도 따라 할 수 있도록 차근차근 알려줘" 정중하게 부탁해야 설치 파일 링크와 같은 익숙한 대답을 받아볼 수 있었습니다. 아무래도 챗GPT에게 여러 개발 관련 질문을 하다보니, 저를 과대평가 한 거 같네요. 재미니한테 물어본 것처럼 챗GPT에게 물어본 뒤에야 일반적인 답변을 얻을 수 있었습니다. 앞서 설명한 컨텍스트 윈도우 붕괴와 프롬프트 왜곡이 벌써부터 시작된거 같아 식은 땀이 날 정도입니다. 사실 이 부분은 영상을 보고 따라하는 편이 더 낫지 않나라는 생각이 들기도 했습니다.

◆ 챗GPT가 추천하는 코파일럿, 개발 전략을 바꿔야했다

코드 에디터 VS Code 설치를 마치자 코파일럿 AI를 쓸 것인지 묻는 질문이 나왔다.
코드 에디터 VS Code 설치를 마치자 코파일럿 AI를 쓸 것인지 묻는 질문이 나왔다.
실제로 개발에 필요한 프로그램을 하나씩 설치하면서 AI가 코딩의 영역에 깊게 파고들었다는 점을 확인할 수 있었습니다. VS Code 초기 설정 옵션에 마이크로소프트의 AI 모델 코파일럿(Copilot) 연동이 있었기 때문입니다. 설명을 보니 무료로 개발에 대한 여러 조언, 버그 수정(디버깅), 코드작성, 질문하기 등이 가능하다고 돼 있네요. 물론, 완전 무료는 아니겠지만, 접근성 측면에서 챗GPT와 재미니 코드를 복사-붙여넣기 하는 번거로움이 없을 것 같아서 매력적이었습니다.

특히 온라인 연결없이 노트북에서 동작하는 소형언어모델(SLM)이라면 앞서 고민했던 파일관리, 프로젝트 생성 등 여러가지 문제에 보다 빠르게 대처할 수 있을 것이란 생각이 들었습니다. 재미니에게도 물어본 결과 코파일럿 기능을 쓰길 권장하며, 활용법을 알려줬습니다.

이어 테스트를 위해 파이썬 명령어로 된 파일을 만들자마자 파이썬 확장 프로그램을 깔아야 한다는 메시지와 함께 바로 설치가 진행됐습니다. 챗GPT가 알려준 명령어 설치 방법은 역시 초보자 보다는 어느정도 지식을 알고 있는 사람을 대상으로 했다는 느낌이 강해졌습니다.

AI가 알려준 대로 라이브러리 설치 마쳤지만, 동영상 강좌를 참고하는 편이 더 쉽게 이해할 수 있다는 생각이 들었다.
AI가 알려준 대로 라이브러리 설치 마쳤지만, 동영상 강좌를 참고하는 편이 더 쉽게 이해할 수 있다는 생각이 들었다.
이후 설치는 무난했습니다. 기본 영어로 제공된 VS Code 에디터를 한국어 언어팩을 '확장:마켓플레이스'에서 찾아서 설치해주는 과정을 마쳤습니다. 물론, 이런 부분도 재미니가 설명해준 것을 따라한 것이었습니다. 단, 코딩을 위한 편집기 인터페이스가 다른 일반적인 워드프로세서 인터페이스와 차이가 많기 때문에, 실제 설치와 운영에는 동영상과 같은 영상을 참고하는 편이 좋아 보입니다. 실제로 VS Code 튜토리얼에는 영상 가이드가 첨부되어 있는데, 한국어 자막이 없다는 점이 불편했습니다.

이후 코딩의 첫 단계인 "hello world!"를 출력하는 것으로 환경 구축이 완료됐는지를 테스트 했습니다. 파이썬에서 텍스트 출력 함수는 print이며, 함수에 변수를 전달하는 괄호 안에 문자열 부호인 ""안에 hello world!를 입력하면 도스창처럼 보이는 터미널에 문자가 출력됩니다. 사실 이 부분도 재미니가 알려준 테스트 방법을 따라한 것이라 별로 어렵지는 않았습니다.

이제 개발 환경 구축을 마쳤습니다. 파이썬은 많은 기술 개발 강연에서 접한 이름이지만, 실제로 개발 환경을 만들기는 처음이라 모르는 부분이 많았습니다. 특히, pygame-ce를 설치할 때 명령어 실행 오류가 나왔지만, 재미니가 알려준 두 가지 해결책 중 하나로 가볍게 해결할 수 있었습니다. 다음 시간에는 VS Code를 통해 본격적인 개발을 진행할 예정입니다만, 이에 앞서 기존 프로젝트에서 처럼 챗GPT나 제미니를 쓸지, 아니면 VS Code에 내장된 코파일럿 연동을 쓸지 여부부터 결정해야 겠네요.

서삼광 기자 (seosk@dailygame.co.kr)
<Copyright ⓒ Dailygame co, Ltd. 무단 전재 및 재배포 금지>

데일리랭킹