본문 바로가기 메뉴 바로가기


티스토리 뷰

728x90
반응형
안녕하세요. 토요일의 21입니다. 이번에는 챗GPT로 윈도우 설치형 게임을 하나 만들어봤습니다. 처음에는 어떤 게임을 부탁할지 조금 고민했습니다. 제가 직접 게임을 개발해 본 적은 없으니 무엇을 어디까지 요구할 수 있는지도 잘 몰랐습니다. 그러다 떠올린 것이 디아블로 1의 어두운 분위기와 뱀파이어 서바이버즈의 진행 방식을 결합한 게임이었습니다. 디아블로처럼 음침한 공간을 돌아다니면서 적을 상대하되, 공격은 자동으로 이루어지고 경험치를 모아 능력을 강화하는 방식이면 좋겠다고 생각했습니다. 그렇다고 기존 게임을 그대로 닮은 결과물을 원한 것은 아니었습니다.

이름이나 배경, 캐릭터의 모습은 독자적이었으면 했습니다. 그런 내용을 챗GPT에 적어 보냈습니다. 게임을 만들어 달라고 부탁하는 일은 생각보다 간단했습니다. 제가 직접 만들라고 했다면 무엇부터 해야 할지도 몰랐을 텐데, 원하는 모습을 문장으로 적는 데에는 그리 오랜 시간이 걸리지 않았습니다.
 

https://ashitaka21.tistory.com/530

 

[이모저모] 챗GPT로 디아블로풍 RPG 게임 만들기, Godot 오류부터 전투 모션까지

안녕하세요. 월요일의 21입니다. 이번에는 생성형 AI인 챗GPT에 설치형 RPG 게임을 만들어 달라고 해봤다. 웹사이트에서 돌아가는 게임이 아니라 윈도우에서 직접 실행할 수 있는 게임, 가능하면

ashitaka21.tistory.com

챗GPT로 게임을 만들어본 것은 이번이 처음은 아닙니다. 지난 7월에도 디아블로풍 액션 RPG를 제작해 보겠다고 나섰다가 꽤 고생했습니다. 당시에는 Godot이라는 게임 엔진까지 설치했지만, 게임보다 먼저 마주한 것은 PowerShell 오류와 스크립트 오류였습니다.


캐릭터가 제대로 움직이지 않거나 공격할 때 몸이 뒤집히는 문제도 있었습니다. 그렇게 한동안 수정에 매달렸으면서 또 게임을 만들어보겠다고 마음먹었으니, 어쩌면 그때의 고생을 벌써 잊어버린 모양입니다. 사실 지난번에 만들었던 게임도 뱀서류의 특징을 갖춘 게임이었습니다. 다만 디아블로풍의 분위기와 RPG 요소를 조금 더 강조했다는 차이가 있었습니다. 이번에는 비슷한 장르를 다시 시도하되, 복잡한 기능을 늘리기보다 실제로 플레이했을 때의 완성도에 조금 더 신경 써보고 싶었습니다. 무엇보다 게임 엔진을 직접 설치해 오류를 수정하는 과정 없이, 챗GPT가 제공하는 설치 파일만으로 어디까지 만들 수 있을지 궁금했습니다. 물론 이번에도 순탄하게 끝나지는 않았습니다.

사실 처음부터 완성도 높은 게임을 기대했던 것은 아닙니다. 챗GPT가 실제로 실행할 수 있는 게임을 만들어줄 수 있는지 궁금했던 마음이 더 컸습니다. 프로그래밍 언어를 배워야 한다거나 게임 제작 프로그램을 설치해야 한다는 이야기는 들어봤지만, 직접 해본 적은 없었습니다. 캐릭터의 움직임과 공격, 적의 등장 방식, 메뉴 화면과 음악까지 생각하면 제가 혼자 할 수 있는 일은 거의 없어 보였습니다. 그런데 이제는 원하는 내용을 설명하면 설치 파일까지 만들어준다고 합니다. 어디까지 가능한지 한번 보고 싶었습니다. 게임이 나오면 직접 실행해 보고, 재미가 있다면 조금 더 수정해 볼 생각이었습니다. 그때만 해도 수정 요청이 그렇게 많이 이어질 줄은 몰랐습니다. 그저 처음 결과물을 받아보는 일이 기다려졌습니다.

 


 

챗GPT로 디아블로의 어두운 분위기와 뱀파이어 서바이버즈의 진행 방식을 결합한 게임을 만들 수 있을까요? 가능하다면 윈도우 설치형으로 제작해 주세요.

그래픽은 디아블로 1의 고전적인 분위기를 참고하되, 실제 화면에서는 디아블로 1이 바로 떠오르지 않도록 독자적으로 구성해 주세요. 자동 공격과 성장 선택을 중심으로 하는 뱀서류 게임이면 좋겠습니다.
윈도우 설치형 뱀서류 게임 '잿빛 등불'의 첫 버전을 제작했습니다. 물에 잠긴 석조 유적을 배경으로 자동 공격, 경험치 수집, 8종 성장과 보스전을 구현했습니다. 한 판은 10분이며 9분에 등장하는 보스를 처치하는 방식입니다. 자동 검사는 통과했지만 실제 윈도우 실행은 확인하지 못했습니다.
챗GPT가 만들어준 게임의 이름은 잿빛 등불이었습니다. 이름부터 제가 생각했던 분위기와 크게 어긋나지는 않았습니다. 물에 잠긴 석조 유적을 배경으로 청록색 등불과 구릿빛 적들이 등장한다고 했습니다. 주인공은 자동으로 공격하고, 적을 쓰러뜨리며 경험치를 모아 성장합니다. 성장 능력은 여덟 종류였고, 이동과 회피도 가능했습니다. 설명을 읽는 동안에는 제법 그럴듯했습니다. 게임에서 흔히 볼 수 있는 요소들이 하나씩 들어 있었습니다. 물론 설명이 그럴듯하다고 실제 게임까지 재미있으리라는 보장은 없었습니다. 그래도 일단 설치 파일이 나왔으니 직접 확인해 보기로 했습니다. 처음 제공된 압축 파일은 약 207KB였습니다. 숫자를 다시 확인할 정도로 용량이 작았습니다. 요즘 게임과 비교하면 거의 아무것도 들어 있지 않은 것처럼 느껴졌습니다. 그래픽을 코드로 그리는 방식이라 가능했던 크기라고 했습니다.

압축을 풀고 설치 파일을 실행했습니다. 챗GPT는 자동 검사를 마쳤지만 실제 윈도우에서는 실행하지 못했다고 했습니다. 그러니 마지막 확인은 제가 해야 했습니다. 다행히 프로그램은 실행됐습니다. 메뉴가 나타났고, 캐릭터를 움직일 수 있었으며, 적들이 화면으로 다가왔습니다. 경험치를 모으면 성장 능력을 선택할 수 있었고, 마지막에는 보스도 등장했습니다. 첫 번째 버전은 끝까지 플레이해 클리어했습니다. 처음에는 조금 신기했습니다. 몇 줄의 요청에서 시작한 게임이 실제로 컴퓨터에서 움직이고 있다는 사실이 낯설었습니다. 제가 코드를 한 줄도 작성하지 않았는데 캐릭터는 움직이고, 적은 공격받고, 성장 선택지도 나타났습니다. 게임 개발을 아는 사람이라면 별것 아니라고 생각할 수도 있겠지만, 제게는 처음 보는 과정이었습니다. 이런 식으로 게임을 받아볼 수도 있구나 싶었습니다.

다만 신기하다는 감정은 오래가지 않았습니다. 게임이 재미있느냐고 묻는다면 선뜻 그렇다고 대답하기 어려웠습니다. 처음부터 맵 한 종류에 단순한 그래픽을 갖춘 프로토타입이라고 설명했으니, 화면이 소박한 것까지 문제 삼고 싶지는 않았습니다. 게임에 사용된 글꼴도 마음에 들지 않았습니다. 고전적인 분위기를 의도한 것인지는 모르겠지만, 메뉴와 게임 화면에 표시되는 글자가 제가 생각했던 어두운 판타지 세계와는 어울리지 않았습니다. 그래픽이 단순한 것은 어느 정도 이해할 수 있었지만, 글꼴까지 어색하니 전체적인 화면이 더 조잡하게 느껴졌습니다. 조금 더 분위기에 어울리는 글꼴을 사용했으면 좋겠다는 생각이 들었습니다.

그런데 적이 몰려와도 별다른 위협이 느껴지지 않았습니다. 계속 움직이며 간신히 살아남아야 할 줄 알았는데, 어느 순간에는 가만히 서 있어도 되지 않을까 싶었습니다. 전투가 진행되고 있는데도 손을 바쁘게 움직일 이유가 없었습니다. 배경음악도 들리지 않았습니다. 적을 공격하거나 맞았을 때의 효과음도 없었고, 성장할 때 들리는 소리는 옛날 도스 프로그램을 떠올리게 했습니다. 오래된 소리를 싫어하는 것은 아니지만, 그렇다고 그 소리를 반갑게 듣고 싶은 마음도 들지 않았습니다. 클리어 화면을 보고도 기쁘다는 생각은 들지 않았습니다. 그저 시시한 게임이었다는 감상만 들었습니다. 실행할 수 있는 게임과 계속하고 싶은 게임은 서로 다른 문제였습니다.

처음에는 이 게임을 블로그에 올려볼 생각도 했습니다. 설치 파일이 있으니 다른 사람도 받아서 실행해 볼 수 있을 겁니다. 그런데 직접 해보고 나니 그러고 싶지 않았습니다. 재미가 없는 게임을 굳이 설치해 보라고 권할 이유가 없었습니다. 파일을 받는 데에는 얼마 걸리지 않더라도 설치하고 실행하고 플레이하는 데에는 시간이 듭니다. 저야 궁금해서 시작한 일이니 그렇다 쳐도, 다른 사람에게까지 시간 낭비를 하게 하고 싶지는 않았습니다.

제가 재미없게 플레이한 게임을 누군가에게도 해보라고 하는 것이 썩 내키지 않았습니다. 제가 직접 해보고도 재미를 느끼지 못한 게임을 남들에게 권한다는 것부터가 조금 무책임하게 느껴졌습니다. 만들었다는 사실만으로 배포할 필요는 없었습니다. 그렇다고 여기서 끝내기에는 아쉬웠습니다. 처음부터 완성된 게임을 기대하지 않았으니 조금 더 수정하면 어떤 모습이 될지 궁금했습니다. 특히 화면부터 바꿔보고 싶었습니다. 단순한 그래픽보다는 제가 상상했던 어두운 유적과 몬스터가 제대로 표현되었으면 했습니다.

게임 메뉴 UI와 메인 타이틀, 실제 플레이 장면을 구상한 이미지를 제공해 주세요. 기존 게임 화면을 캡처하는 방식이 아니라 이미지 생성으로 만들어 주세요.
메뉴 UI, 메인 타이틀, 일반 전투, 보스전의 콘셉트 이미지 네 장을 생성했습니다. 실제 게임 캡처가 아니며 첫 번째 설치 파일에는 적용되지 않은 이미지입니다.
그렇게 나온 이미지 네 장은 처음 받았던 게임보다 훨씬 그럴듯했습니다. 물에 잠긴 석조 유적, 오래된 금속 장식, 청록색 등불과 몰려오는 몬스터가 한 화면에 들어가 있었습니다. 제가 처음 원했던 분위기와 조금 더 가까워졌습니다. 이미지만 놓고 보면 당장 플레이해 보고 싶은 게임처럼 보이기도 했습니다. 하지만 그림 속 캐릭터가 움직이는 것은 아니었습니다. 어디까지나 게임의 모습을 구상한 콘셉트 이미지였습니다. 캐릭터가 실제로 걸어 다니고 공격하는 게임 화면과는 차이가 있었습니다. 그래도 이런 이미지를 보고 있으니 그 안에서 직접 움직여보고 싶어졌습니다. 그래서 생성한 그래픽을 실제 게임에 적용해 달라고 다시 요청했습니다.

이번에는 캐릭터와 적들의 움직임도 신경 써달라고 했습니다. 걷기와 공격 동작에 충분한 애니메이션 프레임을 사용하고, 자연스럽게 연결되도록 해달라는 요청이었습니다. 정지된 이미지에서는 잘 보이지 않던 문제가 움직이기 시작하면 금세 드러날 수 있다고 생각했습니다. 발이 놓이는 위치가 조금씩 달라지거나 캐릭터가 바라보는 방향이 어색하면 게임의 분위기까지 달라질 것 같았습니다. 그러니 필요한 그래픽은 더 생성하더라도 움직임만큼은 자연스러웠으면 했습니다. 단순히 보기 좋은 화면이 아니라 그 안에서 캐릭터를 직접 움직여보고 싶었습니다.

생성해 준 이미지들을 바탕으로 윈도우 설치형 게임을 다시 제작해 주세요. 필요한 이미지가 더 있다면 추가로 생성해서 사용해 주세요.

캐릭터와 적이 움직일 때 자연스럽게 보이도록 걷기와 공격 등의 애니메이션 프레임도 충분히 만들어 주세요. 프레임 사이의 움직임도 부드럽게 이어졌으면 좋겠습니다.
생성 이미지를 실제로 적용한 '잿빛 등불 2.0'을 제작했습니다. 캐릭터와 적, 보스 및 마법 효과 등에 총 192개의 기본 애니메이션 프레임을 사용했고, 프레임 보간을 적용했습니다. 설정과 기록 메뉴도 추가했습니다. 설치 파일은 약 21MB이며 자동 검사와 렌더러 화면 확인을 마쳤습니다.

두 번째 버전의 설치 파일은 약 21MB였습니다. 첫 번째 게임의 압축 파일이 약 207KB였으니 용량부터 크게 달라졌습니다. 이미지를 사용하면서 파일이 커진 것이었습니다. 챗GPT는 주인공과 적, 보스와 마법 효과 등에 총 192개의 기본 프레임을 사용했다고 설명했습니다. 프레임 사이를 보간해 움직임을 부드럽게 만드는 기능도 넣었다고 했습니다. 설정과 기록 메뉴도 추가됐습니다. 처음보다 훨씬 많은 기능이 들어간 셈이었습니다. 설명을 읽고 있으니, 이번에는 조금 더 제대로 된 게임이 나올지도 모르겠다고 생각했습니다.

압축을 풀고 설치한 뒤 다시 게임을 실행했습니다. 메뉴부터 이전과 달라졌고, 전투 화면에도 새로운 그래픽이 적용되어 있었습니다. 화면만 놓고 보면 분명 좋아졌습니다. 그런데 플레이를 시작하자마자 게임 화면이 계속 깜빡였습니다. 정상적인 화면이 나타났다가 검게 변하는 일이 반복됐습니다. 설정창에 들어가면 잠깐 멈출 때도 있었지만 항상 그런 것은 아니었습니다. 다시 전투 화면으로 돌아오면 검은 화면이 반복됐습니다. 화면이 깜빡이는 중에 캡처한 이미지는 온통 검게 보이기도 했습니다. 게임을 하려고 설치했는데 정작 화면을 제대로 볼 수 없으니 어떻게 해야 할지 막막했습니다.
 

처음에는 그래픽 설정이 잘못된 것인지 의심했습니다. 설정 메뉴에 부드러운 애니메이션과 성능 우선이라는 항목이 있어서 두 가지를 번갈아 선택해 봤습니다. 그런데 차이를 확인하기도 어려웠습니다. 무엇보다 검은 화면부터 해결해야 했습니다. 결국 두 번째 버전은 클리어하지 못했습니다.

챗GPT에 두 그래픽 설정의 차이도 물었습니다. 부드러운 애니메이션은 프레임 보간과 빛 번짐, 화면 흔들림 같은 효과를 사용하고, 성능 우선은 그런 효과를 줄이는 방식이라고 했습니다. 이미지 해상도 자체가 바뀌는 것은 아니어서 메뉴에서는 차이가 거의 없을 수 있다고 했습니다. 설명을 듣고 보니 이해는 됐습니다. 다만 그때는 움직임이 얼마나 부드러운지 살펴볼 여유가 없었습니다. 정상적인 화면이 보이는 것이 먼저였습니다. 챗GPT도 화면 전체가 검게 변하는 현상은 정상적인 그래픽 설정 효과가 아니라고 했습니다. 그래서 깜빡임을 수정해 달라고 요청했습니다. 완성된 화면을 한 번에 표시하도록 처리하고, 화면을 검게 지웠다가 다시 그리는 과정에서 문제가 생기지 않도록 해달라는 내용이었습니다. 어디가 잘못되었는지 제가 직접 코드를 읽어 확인할 수는 없었으니, 실제로 보이는 증상을 설명하는 것이 전부였습니다.

게임 화면이 시작하자마자 계속 깜빡입니다. 설정 메뉴에 들어가면 잠깐 멈출 때도 있지만 계속될 때도 있습니다.

캐릭터 방향과 걷기 모션도 수정해 주세요. 오른쪽으로 이동하면 오른쪽을 봐야 하는데 그렇지 않고, 왼쪽으로 걸을 때는 공중에 떠서 이동하는 것처럼 보입니다. 위아래 걷기 모션은 괜찮습니다.

배경음악이 들리지 않고 효과음도 너무 단출합니다. 이 부분도 개선해 주세요.
화면을 검게 지운 뒤 다시 그리는 처리를 화면 밖의 버퍼로 옮겨 깜빡임을 개선하겠습니다. 좌우 방향 이미지와 발 위치를 수정하고, 배경음악과 공격·피격·회피·성장 효과음도 보강하겠습니다.
화면만 문제가 있었던 것은 아닙니다. 캐릭터가 걸어 다니는 모습을 살펴보니 방향과 발의 움직임도 어색했습니다. 오른쪽으로 이동하는데 오른쪽을 바라보지 않았고, 왼쪽으로 움직일 때는 땅 위를 걷는 것이 아니라 공중에 조금 떠서 이동하는 듯했습니다. 위아래 방향의 걷기 동작은 비교적 괜찮았습니다. 그래서 좌우 이동만 다시 수정해 달라고 했습니다. 걷기 동작이 자연스럽게 이어지도록 프레임을 맞추고, 캐릭터가 바라보는 방향과 이동 방향도 일치하도록 해달라고 했습니다. 정지된 이미지에서는 잘 보이지 않던 문제가 움직이기 시작하니 금세 드러났습니다. 애니메이션 프레임이 많다는 설명을 들었을 때는 움직임이 자연스러울 줄 알았습니다. 그런데 프레임 수만 늘린다고 모든 문제가 해결되는 것은 아니었습니다. 발이 놓이는 위치나 캐릭터의 방향까지 맞아야 제대로 걷는 것처럼 보였습니다.
 
맵에서도 이상한 부분이 보였습니다. 배경에는 벽과 수로가 그려져 있는데 캐릭터가 그 위를 그대로 지나갈 수 있었습니다. 분명 물이 흐르는 공간처럼 보이는데 아무 일도 없다는 듯 걸어갔습니다. 장애물도 마찬가지였습니다. 어떤 곳은 통과하지 못했지만, 다른 곳은 그림을 뚫고 들어갈 수 있었습니다. 처음에는 그림이 조금 어색한 정도라고 생각했는데, 실제로 움직여보니 그렇지 않았습니다. 배경에 그려진 지형과 게임 안에서 충돌하는 범위가 서로 맞지 않았습니다. 벽이면 막히고, 물길이면 지나가지 못해야 한다는 것을 따로 요청해야 했습니다. 장애물의 한쪽은 막혀 있는데 가장자리로는 들어갈 수 있는 곳도 있었습니다. 노란색으로 표시한 장애물은 통과하지 못했지만, 빨간색으로 표시한 잔해는 그대로 지나갈 수 있었습니다. 그런 부분을 이미지에 표시해서 다시 전달했습니다. 화면에 보이는 모양과 실제 충돌 범위를 맞춰 달라는 요청이었습니다.

적에게 둘러싸였을 때도 긴장감이 부족했습니다. 처음부터 난이도가 낮다는 생각은 했지만, 그 이유가 단순히 적의 공격력이 약해서만은 아니었습니다. 적이 몰려와도 몸을 겹쳐 그대로 지나갈 수 있었습니다. 포위되었다는 느낌이 들지 않았습니다. 보통 이런 게임에서는 적이 몰려오면 빠져나갈 길을 찾아야 하고, 잘못 움직이면 위험한 상황에 놓입니다. 그런데 이 게임에서는 적 사이를 그대로 통과할 수 있으니 그런 판단이 거의 필요하지 않았습니다. 둘러싸여도 위험하지 않다면 포위되는 의미가 없었습니다. 그래서 적에게도 충돌 판정을 넣어달라고 했습니다. 적의 몸을 그대로 뚫고 지나갈 수 없게 하고, 회피 동작을 사용하더라도 벽이나 장애물을 통과하지 못하도록 해달라는 요청이었습니다. 여기에 적의 이동 속도와 난이도도 높여 달라고 했습니다. 가만히 있어도 클리어할 수 있는 게임보다는 계속 움직이며 살아남아야 하는 게임을 원했습니다.

맵에 그려진 벽이나 수로를 캐릭터가 그대로 통과하는 곳이 있습니다. 이런 지형은 지나가지 못하도록 막아 주세요. 장애물의 그림 크기와 실제 충돌 범위도 맞춰 주세요.

적에게 둘러싸였을 때도 그대로 뚫고 지나갈 수 있어서 긴장감이 없습니다. 적의 몸에도 충돌 판정을 넣고, 포위되면 위험해지도록 조정해 주세요. 회피 중에도 벽이나 장애물을 통과하지 못했으면 좋겠습니다.
수로와 벽에 통과 금지 영역을 설정하고, 장애물의 충돌 범위를 실제 바닥 면적에 맞추겠습니다. 적과 플레이어 사이에도 충돌 판정을 적용해 적에게 둘러싸였을 때 그대로 통과하지 못하도록 수정하겠습니다.
수정 요청은 점점 길어졌습니다. 그래픽도 조금 더 다듬고 싶었습니다. 참고 이미지처럼 메뉴와 글꼴을 꾸미고, 맵과 몬스터의 표현도 개선해 달라고 했습니다. 주인공의 공격 모션뿐 아니라 적들의 공격 모션도 필요했습니다. 처음에는 단순하게 적이 가까이 다가오기만 했지만, 공격하는 동작까지 보여주면 조금 더 게임답게 느껴질 것 같았습니다. 시작 전에 난이도를 선택할 수 있게 해달라는 요청도 덧붙였습니다. 너무 쉬운 난이도만 있는 것이 아니라 원하는 수준으로 게임을 시작할 수 있으면 좋겠다고 생각했습니다. 그리고 여전히 음악이 아쉬웠습니다. 전투 상황에 어울리는 배경음악과 다양한 효과음을 추가해달라고 했습니다. 처음에는 게임 하나를 만들어 달라고 했을 뿐인데 어느새 캐릭터의 발 위치부터 적의 충돌 범위, 음악과 난이도까지 하나씩 설명하고 있었습니다. 게임을 하면서 당연하다고 여겼던 것들이 이렇게 많은 줄 몰랐습니다.

그렇게 개선판을 기다렸습니다. 당시 작업은 46분 53초가 걸렸습니다. 요청이 많았으니, 시간이 걸릴 수 있다는 것은 이해했습니다. 제가 직접 만들었다면 46분이 아니라 어디서부터 시작해야 하는지도 몰랐을 겁니다. 그렇다고 기다리는 시간이 짧게 느껴지는 것은 아니었습니다. 작업이 진행되는 동안 화면을 보고, 앞서 발견한 문제를 떠올리고, 다시 수정해야 할 것이 없는지 생각했습니다. 처음에는 결과가 궁금했지만, 시간이 길어지니 점점 지치기도 했습니다. 게임을 개발하는 일이 이렇게 손이 많이 가는 일이었나 싶었습니다. 물론 제가 실제로 코드를 작성한 것은 아닙니다. 다만 문제를 발견하고 설명하는 일도 생각보다 간단하지 않았습니다. 눈앞에서 이상하게 움직이는 장면을 문장으로 옮기려면 무엇이 어떻게 잘못되었는지 살펴봐야 했습니다. 게임을 하는 시간보다 게임의 문제를 설명하는 시간이 길어지는 듯했습니다.

장애물의 그림과 충돌 범위가 다른 부분을 수정해 주세요. UI와 글꼴, 맵과 몬스터도 참고 이미지의 분위기에 맞춰 개선해 주세요.

주인공과 적의 공격 모션을 보강하고 적의 이동 속도도 높여 주세요. 지금은 난이도가 너무 낮습니다. 시작 전에 난이도를 선택할 수 있게 하고, 배경음악과 효과음도 더 풍부하게 만들어 주세요.
'잿빛 등불 2.1'을 제작했습니다. 화면 출력과 캐릭터 방향, 지형·적 충돌을 개선하고 공격 모션을 보강했습니다. 난이도 4단계(산책·생존·악몽·지옥), 배경음악 3곡, 효과음 14종을 추가했습니다. 설치 파일은 약 43MB이며 자동 검사는 통과했지만 실제 윈도우 실행은 확인하지 못했습니다.
그렇게 나온 개선판이 잿빛 등불 2.1이었습니다. 설치 파일은 약 43MB였습니다. 이전 2.0이 약 21MB였으니 용량도 두 배 정도로 커졌습니다. 챗GPT는 화면 깜빡임을 줄이기 위한 출력 방식을 수정하고, 캐릭터의 좌우 이동과 지형 충돌을 개선했다고 했습니다. 적의 충돌 판정과 공격 모션도 추가했다고 했습니다. 메뉴에는 금속 장식과 명조 계열 글꼴을 적용했고, 난이도는 산책·생존·악몽·지옥의 네 단계로 나뉘었습니다. 배경음악 세 곡과 효과음 열네 종류도 넣었다고 했습니다. 설명만 읽으면 처음과 비교해 상당히 달라진 게임이었습니다. 자동 검사를 통과했다는 안내도 받았습니다. 하지만 실제 윈도우에서 화면과 소리가 정상적으로 출력되는지는 챗GPT가 확인하지 못했다고 했습니다. 결국 다시 설치해서 직접 확인해야 했습니다.

설치 파일을 실행하고 게임을 살펴봤습니다. 화면이 계속 검게 변하던 문제는 이전보다 나아졌는지 확인했고, 음악과 효과음도 직접 들어봤습니다. 다만 제가 기대했던 게임이 되었느냐고 하면 여전히 아쉬웠습니다. 처음보다 기능은 늘었고 화면도 좋아졌지만, 실제로 플레이하며 느끼는 재미까지 그만큼 달라진 것은 아니었습니다. 캐릭터와 적의 움직임도 자세히 들여다보게 됐습니다. 처음에는 몬스터가 몰려오는 모습이나 배경에 눈이 갔다면, 이제는 캐릭터의 발이 바닥에 제대로 닿는지, 공격할 때 몸이 어떻게 움직이는지부터 살피게 됐습니다. 게임을 즐기려고 실행했는데 어느새 잘못된 곳을 찾아내는 것이 먼저가 되었습니다. 처음 만들었을 때의 신기함은 조금씩 줄어들고 있었습니다. 그래도 여기까지 수정한 것이 아까워서 한 번만 더 고쳐보기로 했습니다.

마지막으로 눈에 걸린 것은 공격 동작이었습니다. 미리보기 영상과 실제 게임을 보니 캐릭터가 공격하는 동안 기본자세가 자연스럽게 사라지지 않는 것처럼 느껴졌습니다. 정지한 모습 위에 공격하는 모습이 겹쳐 있는 듯했습니다. 서로 다른 그림이 한자리에 나타나니 공격하는 동작이 어색했습니다. 그래서 정지한 상태에서 공격할 때는 공격 모션만 보이도록 하고, 이동하면서 공격할 때도 걷기와 공격 자세가 자연스럽게 연결되도록 수정해달라고 했습니다. 이전에는 방향과 발 위치가 문제였는데 이번에는 기본 자세와 공격 자세가 문제였습니다. 하나를 고치면 다른 부분이 눈에 들어왔습니다. 물론 두 문제가 서로 다른 것이니 이런 과정이 이상한 일은 아닐 겁니다. 다만 그때쯤에는 계속 고치는 일이 조금 지겨워졌습니다. 게임을 완성하고 싶은 마음보다 언제까지 수정해야 할까 하는 생각이 앞섰습니다.

공격 모션이 재생되는 동안 기본 정지 자세의 캐릭터가 그대로 남아 있어 두 모습이 겹쳐 보입니다.

정지 상태에서 공격할 때는 공격 모션만 보이도록 하고, 이동하면서 공격할 때도 걷기와 공격 자세가 자연스럽게 연결되도록 수정해 주세요.
기본 자세 위에 공격 이미지를 중복 표시하는 문제를 수정하고, 정지·이동·공격 상태에 따라 표시할 스프라이트를 구분한 개선판을 제공했습니다. 실제 플레이에서 동작이 자연스러운지는 추가 확인이 필요합니다.
그렇게 받은 마지막 버전이 2.1.1이었습니다. 이번에도 윈도우에 설치해서 직접 실행했습니다. 챗GPT는 기본 캐릭터 위에 공격 캐릭터를 덧그리던 문제를 수정했다고 했습니다. 그러나 제가 본 화면에는 여전히 어색한 부분이 남아 있었습니다. 정지한 상태에서 공격 모션이 나오는데 기본 자세와 공격 자세가 자연스럽게 이어지는 느낌은 아니었습니다. 서로 다른 스프라이트 이미지가 겹쳐 보이는 듯했습니다. 정확히 어떤 코드가 잘못되었는지는 알 수 없었습니다. 제가 직접 소스코드를 분석한 것은 아니니 단정할 수는 없습니다. 하지만 눈으로 보기에도 어색한 움직임이라는 것은 알 수 있었습니다. 그걸 다시 설명하고, 또 수정한 파일을 받아 설치하고, 같은 장면을 확인해야 한다고 생각하니 더는 내키지 않았습니다. 처음에는 조금씩 고치면 완성에 가까워질 줄 알았는데, 실제로는 새로운 문제가 계속 발견됐습니다.

마지막 설치 파일은 대략 40MB 정도였습니다. 설치하고 나니 약 100MB를 차지했습니다. 요즘 게임을 생각하면 작은 용량입니다. 그렇다고 용량이 작으니 그냥 보관해 두자고 생각하지는 않았습니다. 이 게임이 제 저장 공간과 플레이 시간을 쓸 만큼 재미있는가. 그 질문을 다시 해봤습니다. 처음부터 여러 차례 실행했고, 수정한 내용도 확인했습니다. 화면은 처음보다 훨씬 좋아졌고 기능도 늘었습니다. 난이도를 선택할 수 있고, 배경음악과 효과음도 추가됐으며, 캐릭터와 몬스터의 움직임도 조금씩 달라졌습니다. 하지만 제가 느낀 재미는 여전히 그저 그랬습니다. 한 판 더 플레이하고 싶다는 생각보다는 어디가 또 잘못되었는지 찾아야 할 것 같은 기분이 들었습니다. 게임을 설치했는데 게임을 즐기기보다 시험하는 사람이 되어 있었습니다. 그쯤에서 이번 작업을 끝내기로 했습니다.

처음부터 설치 파일만 있으면 되는지도 몰랐습니다. 챗GPT가 게임 파일과 함께 소스코드도 제공하니 둘 다 받아야 하는 것인지 궁금했습니다. 물어보니 게임을 실행하는 데에는 설치 파일만 있으면 된다고 했습니다. 소스코드는 직접 수정하거나 다시 개발할 때 필요한 것이었습니다. 그런 것도 하나씩 물어보며 진행했습니다. 제가 프로그램을 만들 줄 아는 사람이었다면 별다른 질문도 아니었을 겁니다. 하지만 모르는 입장에서는 설치 파일과 소스코드가 각각 무엇을 하는지부터 확인해야 했습니다. 그 과정이 조금 재미있기도 했습니다. 적어도 이번에는 프로그램을 받아 실행하는 일과 소스코드를 이용해 프로그램을 수정하는 일이 다르다는 것을 알게 됐습니다. 직접 개발하는 사람은 아니었지만, 개발 과정에서 무엇을 확인해야 하는지는 조금씩 보이기 시작했습니다.

돌아보면 처음 게임을 요청할 때는 이렇게 많은 것을 고치게 될 줄 몰랐습니다. 어두운 분위기의 뱀서류 게임을 만들어 달라는 몇 줄의 문장에서 시작했습니다. 처음에는 단순한 그래픽의 게임을 받았고, 끝까지 클리어했습니다. 그다음에는 이미지 네 장을 생성해 화면을 바꾸고, 캐릭터와 적들에게 애니메이션을 넣었습니다. 그런데 화면이 깜빡였고, 걷는 방향이 어색했으며, 벽과 수로를 그대로 지나갈 수 있었습니다. 적에게 둘러싸여도 위험하지 않았고, 음악과 효과음도 마음에 들지 않았습니다. 그래서 고치고 또 고쳤습니다. 마지막에는 공격하는 캐릭터의 모습까지 다시 살폈습니다. 각각의 문제는 수정 요청으로 설명할 수 있었지만, 그것들이 모여 재미있는 게임 하나가 되는 일은 생각보다 어려웠습니다. 기능을 하나씩 더한다고 해서 게임이 저절로 재미있어지는 것은 아니었습니다.

그래도 이번 시도가 완전히 헛수고였다고 생각하지는 않습니다. 제가 혼자였다면 게임을 만들어보겠다는 생각만 하다가 끝났을 가능성이 큽니다. 설치형 프로그램을 제작하는 방법도 몰랐고, 캐릭터를 움직이게 할 자신도 없었습니다. 그런데 챗GPT에 요청하면서 실제로 실행되는 게임을 받아봤습니다. 처음에는 207KB에 불과했던 파일이 이미지를 적용하면서 21MB로 커졌고, 여러 기능을 추가한 개선판은 43MB까지 늘어났습니다. 그 과정에서 게임 화면을 구상한 이미지도 만들었고, 실제 게임에 적용해 보기도 했습니다. 그런 일들을 직접 경험했다는 점은 남습니다. 다만 만들 수 있다는 사실과 잘 만들 수 있다는 사실은 구분해야 할 것 같습니다. 이번에는 설치까지 성공했지만, 마지막까지 만족스러운 결과물이라고 말하기는 어려웠습니다. 그래서 어느 버전도 배포하지 않기로 했습니다.

애초에 이 일을 시작한 이유 중 하나는 블로그에 쓸 이야기가 생기지 않을까 하는 생각이었습니다. 챗GPT로 게임을 만들고 직접 실행해 본 경험을 남기면 글 하나쯤은 쓸 수 있을 것 같았습니다. 실제로 글은 나왔습니다. 다만 이렇게까지 길어질 줄은 몰랐습니다. 게임을 설치하고, 실행하고, 화면을 캡처하고, 이상한 부분을 설명하고, 다시 설치하는 일을 반복했습니다. 어느 순간에는 게임하는 시간보다 문제를 찾아 설명하는 시간이 더 길게 느껴졌습니다. 수정판 하나를 받기 위해 46분 53초를 기다린 일도 있었습니다. 포스팅 하나를 쓰자고 시작한 일인데 생각보다 많은 시간을 쓰게 됐습니다. 그렇다고 이 글을 올린 뒤 검색 유입이 갑자기 늘어날 것도 아닐 겁니다. 그런 생각을 하니 조금 허탈하기도 했습니다. 그래도 직접 해보지 않았다면 알 수 없었던 일들이니 기록은 남겨두고 싶었습니다.

더 고치면 조금 나아질지도 모르겠습니다. 공격 동작을 다시 만들고, 캐릭터의 기준점을 맞추고, 맵의 충돌 범위를 세밀하게 조정할 수 있을 겁니다. 난이도도 더 조절하고 음악도 바꾸면 처음보다 재미있는 게임이 될 가능성은 있습니다. 하지만 지금은 그러고 싶은 마음이 크지 않습니다. 한 번 고치고 나면 다시 확인해야 하고, 또 다른 문제가 보이면 그 부분을 설명해야 합니다. 처음에는 결과물이 궁금해서 즐겁게 시작했지만, 계속 같은 과정을 반복하고 싶지는 않았습니다. 이번에는 완성될 때까지 붙잡고 있기보다 여기서 멈추기로 했습니다. 마지막으로 게임을 실행하고 화면을 한동안 바라봤습니다. 처음에 받았던 단순한 게임과 비교하면 상당히 달라졌습니다. 그래도 한 판 더 해보고 싶다는 마음은 들지 않았습니다. 프로그램을 종료한 뒤 다시 실행하지 않았습니다.

잿빛 등불 제작 과정은 여기까지입니다. 몇 줄의 요청에서 시작해 윈도우 설치 파일을 받고, 게임을 실행하고, 그래픽을 바꾸고, 여러 차례 수정하는 일까지 해봤습니다. 제가 기대했던 만큼 재미있는 게임은 아니었지만, 어디까지 가능한지 직접 확인할 수 있었습니다. 만들기 전에는 챗GPT가 게임 하나쯤은 어렵지 않게 만들어줄 수 있지 않을까 생각했습니다. 지금은 그 말에 조금 다른 의미를 붙이게 됩니다. 실행되는 프로그램을 만드는 것과 오래 즐길 만한 게임을 만드는 일 사이에는 여전히 많은 과정이 필요했습니다. 그 과정을 전부 해결할 자신도, 계속 수정할 마음도 지금은 없습니다. 그래도 처음 실행했을 때의 신기함만큼은 기억에 남을 것 같습니다.

버전 파일 용량 실행 후 감상
1.0 ZIP 약 207KB 실행 및 클리어 성공. 그래픽과 소리가 단순하고 난이도가 낮아 재미는 부족했습니다.
2.0 설치 파일 약 21MB 생성한 이미지를 적용했지만 화면이 계속 깜빡여 정상적인 플레이가 어려웠습니다.
2.1 설치 파일 약 43MB 화면과 충돌, 방향, 난이도 및 소리를 개선한 버전입니다. 직접 실행해 확인했지만 아쉬움이 남았습니다.
2.1.1 설치 파일 약 40MB대, 설치 후 약 100MB 공격 동작을 수정했지만 스프라이트가 겹치는 듯한 어색함이 남아 제작을 중단했습니다.

이렇게 버전별로 정리하고 나니 처음 만들었던 게임과 마지막에 받은 게임이 제법 달라졌다는 것을 알 수 있습니다. 처음에는 단순한 화면에서 캐릭터가 움직이는 것만으로도 신기했습니다. 이후에는 배경과 캐릭터의 모습이 바뀌고, 음악과 효과음이 추가됐으며, 난이도와 충돌 판정까지 손을 댔습니다. 그만큼 나아진 부분도 있었지만, 마지막까지 마음에 걸리는 곳은 남았습니다. 기능이 많아지는 것과 게임이 재미있어지는 것은 다른 일이었습니다. 처음부터 끝까지 여러 차례 설치하고 실행했지만, 한 번 더 플레이하고 싶다는 마음은 좀처럼 생기지 않았습니다.

그렇다고 이번 작업을 후회하지는 않습니다. 제가 직접 코드를 작성했다면 시작조차 하지 못했을 일을 경험했으니까요. 다만 챗GPT가 만들어준 파일을 받는 것만으로 모든 작업이 끝나는 것은 아니었습니다. 실제로 설치하고, 움직임을 살피고, 이상한 부분을 찾아 다시 설명해야 했습니다. 고쳤다는 답변을 받더라도 제 컴퓨터에서 같은 문제가 해결됐는지는 따로 확인해야 했습니다. 마지막까지 확인하는 일은 결국 제 몫이었습니다. 그 과정에서 조금씩 지치기도 했지만, 프로그램 하나가 제대로 움직이기 위해 얼마나 많은 부분이 맞물려야 하는지도 알게 됐습니다.

게임 파일은 공개하지 않기로 했습니다. 누군가에게 설치해보라고 권할 만큼 만족스럽지 않았고, 계속 수정할 마음도 지금은 없습니다. 대신 이렇게 글로 남겨두려고 합니다. 처음에는 게임을 하나 만들었다는 이야기를 쓰고 싶었는데, 막상 글을 적고 보니 만들어진 게임보다 그 게임을 고쳐나간 과정에 더 많은 이야기가 있었습니다. 다음에 다시 시도한다면 이번에 겪었던 문제들을 조금은 덜 헤매며 설명할 수 있을지도 모르겠습니다. 물론 당분간은 다시 만들 생각이 없습니다. 마지막 설치 파일을 실행했다가 종료한 뒤로는 더 손대지 않았습니다. 잿빛 등불은 여기까지입니다.

 

728x90
반응형
댓글
최근에 달린 댓글
글 보관함
«   2026/11   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
최근에 올라온 글
Total
Today
Yesterday